package com.chalk.common.util;

import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

import java.lang.reflect.Type;

/**
 * @author xiaoqiang
 * @Description Json 工具类
 * @date 2018/10/31 10:59
 */
public class GsonUtil {

    private static final Gson GSON = new Gson();

    private static final JsonParser JSON_PARSER = new JsonParser();

    private static final String TERMINATOR = "\n";

    /* 对象转换成Json */
    public static String beanToJson(Object obj) {
        return GSON.toJson(obj);
    }

    /* 对象转换成发送Json */
    public static String beanToSendJson(Object obj) {
        return GSON.toJson(obj) + TERMINATOR;
    }

    /* Json转换成Bean */
    public static <T> T jsonToBean(String json, Class<T> classs) {
        return GSON.fromJson(json, classs);
    }

    /* Json转换成Bean */
    public static <T> T jsonToBean(String json, Type typeOfT) {
        return GSON.fromJson(json, typeOfT);
    }

    /* Json转换成JsonObject */
    public static JsonObject jsonToJsonObject(String json) {
        return JSON_PARSER.parse(json).getAsJsonObject();
    }

}
